package river_city_ransom.decorators;

import exceptions.ComposantError;
import river_city_ransom.services.Dimensions;
import river_city_ransom.services.Equipable;
import river_city_ransom.services.Position;


public abstract class Equipable_D implements Equipable {
	private Equipable delegate;
	
	public Equipable_D(Equipable delegate) {
		this.delegate = delegate;
	}
	
	protected Equipable delegate() {
		return delegate;
	}
	
	@Override
	public boolean equals(Object o) {
		return delegate().equals(o);
	}
	
	/** _________________________________________________________ OBSERVATORS */
	@Override
	public Dimensions dimensions() {
		return delegate().dimensions();
	}
	
	@Override
	public boolean estEquipable() {
		return delegate().estEquipable();
	}
	
	@Override
	public boolean estPorte() {
		return delegate().estPorte();
	}
	
	@Override
	public int estJete() {
		return delegate().estJete();
	}
	
	@Override
	public Position position() {
		return delegate().position();
	}
	
	/** ___________________________________________________________ OPERATORS */
	@Override
	public void etreRamasse() throws ComposantError {
		delegate().etreRamasse();
	}
	
	@Override
	public void etreJete(boolean d) throws ComposantError {
		delegate().etreJete(d);
	}
}
